陳述式 ( Statement ):
用於命令執行指定的一系列操作,不會回傳結果。
表達式 ( Expression ):
又可稱為表示式、運算式,經常透過一些符號結合上下語句並運算及回傳結果。
陳述式或表達式並不一定是個完整的語句,片段也可成為陳述式或表達式
範例 :
//表達式
100 + 100; // 回傳一個值 200
//陳述式
var ming; // undefined
if (1 === 1){
} // undefined
//表達式
ming = '小明'; // 回傳 "小明"
函式陳述式 與 函式表達式,兩者的 hoisting 結果會不一樣
// 函式陳述式、具名函式
function callName(){
}
// 函式表達式、匿名函式
// 宣告一個變數,並且用等號將函式賦值到變數上
var callName = funciton(){
}
ASI:當JavaScript語句沒有加上分號時,則會受到自動插入分號(ASI)規則影響。
來看看下面這個兩種範例的差別
function callName() {
return
'叫我小明';
}
console.log(callName());
// undefined
// 以下是實際運行方式
function callName() {
return ; // ASI機制會自動插入分號,因此結果是 undefined
'叫我小明';
}
console.log(callName());
// undefined
//---------------------------
// 可以正確回傳小明的方式
function callName() {
return '叫我小明';
}
console.log(callName());
// 叫我小明
1.新的一行是「 (
、 [
、/
」開始 (容易出錯的地方)
2.新的一行以「+
、 -
、 *
、%
」作開始 (會影響執行結果)
3.新的一行以「 ,
、 .
」作開始 (須注意執行結果)
遇到以上的標點符號前方加入分號也是解決辦法